package org.ioriframework.plugin.maven.console;

import java.io.IOException;

import org.eclipse.ui.console.MessageConsoleStream;

/**
 * 控制台服务
 * @author iori
 *
 */
public class ConsoleService {

	public static final int INFO = 0;
	public static final int WARNING = 0;
	public static final int ERROR = 0;
	
	/**
	 * 输出内容至console窗口
	 * @param level 内容级别 ERROR以红色文本输出
	 * @param message 输出的内容
	 * @param activateOnWrite true:当console窗口没有打开时，激活窗口
	 */
	public static void println2Console(int level, String message, boolean activateOnWrite) {
		MessageConsoleStream printer = null;
		try {
			printer = ConsoleFactory.currentConsole().newMessageStream();
			printer.setActivateOnWrite(activateOnWrite);
			// 设置异常输出为红色
			if (ERROR == level) {
//				Display.getDefault().syncExec(new Runnable() {
//									
//					@Override
//					public void run() {
//						printer.setColor(new Color(Display.getDefault(), 255, 0, 0));
//					}
//				}
			}
			printer.println(message);
			printer.flush();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				printer.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	
	/**
	 * 输出内容
	 * @param message
	 */
	public static void println2Console(String message) {
		println2Console(INFO, message, true);
	}
	
	/**
	 * 输出警告
	 * @param message
	 */
	public static void printlnWarning2Console(String message) {
		println2Console(WARNING, message, true);
	}
	
	/**
	 * 输出异常
	 * @param message
	 */
	public static void printlnError2Console(String message) {
		println2Console(ERROR, message, true);
	}
}
